In the field of systems design and engineering, when designing a large scale complex system (e.g. an autonomous vehicle), a problem of balancing design objectives (e.g. a maximum weight for the vehicle, a minimum top-speed for the vehicle, etc.) across the whole system tends to be a time consuming and error prone process.
Conventionally, the large scale complex system is divided into smaller subsystems or components. These subsystems may then be designed individually against derived requirements. With this “divide and conquer” approach, a single design choice for one subsystem could move the entire design (i.e. the design of the system as a whole) to a limiting area of the design space. This tends to be the case when designing autonomous systems where individual components can be controlled or reconfigured at design time or during the lifetime of the system.